package com.kai.steering.data.service.service;

import com.kai.steering.common.vo.Result;
import com.kai.steering.data.service.entity.domainObject.ClassificationDO;
import com.kai.steering.data.service.entity.dto.ClassificationQueryDTO;
import com.kai.steering.data.service.entity.po.Classification;
import com.kai.steering.common.web.service.BaseService;
import com.kai.steering.common.vo.Page;
import com.kai.steering.data.service.entity.vo.ClassificationVO;

import java.io.Serializable;
import java.util.List;

/**
 * <pre>
 * 题目分类 服务类
 * </pre>
 *
 * @author kai
 * @since 2022-02-23
 */
public interface ClassificationService extends BaseService<Classification> {

    /**
     * 保存
     *
     * @param classificationDO
     * @return
     */
    boolean saveClassification(ClassificationDO classificationDO);

    /**
     * 修改
     *
     * @param classificationDO
     * @return
     */
    boolean updateClassification(Serializable id, ClassificationDO classificationDO);

    /**
     * 删除
     *
     * @param id
     * @return
     */
    boolean deleteClassification(Serializable id);

    /**
     * 根据ID获取查询对象
     *
     * @param id
     * @return
     */
    ClassificationDO getClassificationById(Serializable id);


    /**
     * 获取所有对象
     *
     * @return
     */
    List<ClassificationVO> getAllClassification();

    /**
     * 获取分页对象
     *
     * @param classificationQueryDTO
     * @return
     */
    Page<ClassificationVO> getClassificationPageList(ClassificationQueryDTO classificationQueryDTO);

    /**
     * 判断某属性是否存在
     *
     * @param key
     * @param val
     * @param id
     * @return
     */
    boolean isExists(String key, String val, Serializable id);


    /**
     * 更具名称查询
     * @param classificationName
     * @return
     */
    ClassificationDO getClassificationByName(String classificationName);
}

